/**
 * 该 user 仓库，采用 组合式定义
 */

import { ref, reactive, computed } from 'vue'
import { defineStore } from 'pinia'

export const useUserStore = defineStore('user', () => {
  // 使用 ref 或 reactive 来创建 state 数据
  const token = ref('abcdefg')
  const info = ref({ name: '张三', age: 18 })

  // 使用 computed 来创建 getter 数据
  const hasLogin = computed(() => !!token.value)

  // 使用 普通函数 来创建 action
  const logout = () => {
    token.value = ''
    info.value = null
  }

  const login = () => {
    token.value = 'abcdefg'
    info.value = { name: '张三', age: 18 }
  }

  // 关键，需要 return
  return {
    token,
    info,
    hasLogin,
    logout,
    login
  }
})
